        Programming threads, handles and asynchronized programs

Code:
package com.example.threat
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity()
 {
    var flag=false
    var sec=0
    var handler=Handler(Looper.getMainLooper())

    override fun onCreate(savedInstanceState: Bundle?)
    {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        button.setOnClickListener 
         {
            if (!flag)
             {
                flag=true
                handler.post(object :Runnable
                {
                    override fun run() {
                        sec++
                        textView.text=sec.toString()
                        handler.postDelayed(this,1000)
                    }
                })
            }
        }
        button2.setOnClickListener 
        {
            flag=false
            handler.removeCallbacksAndMessages(null)
        }
    }
}


